Visualizing Precession in Schwarzschild Spacetime

Importing required modules

[1]:
import astropy.units as u
import numpy as np
from plotly.offline import init_notebook_mode

# from einsteinpy.coordinates.utils import four_position, stacked_vec
from einsteinpy.coordinates import SphericalDifferential
from einsteinpy.geodesic import Timelike
from einsteinpy.metric import Schwarzschild
from einsteinpy.plotting import GeodesicPlotter

# Essential when using Jupyter Notebook (May skip in Jupyter Lab)
init_notebook_mode(connected=True)

Defining Schwarzschild Metric and Initial Conditions

[2]:
# Mass of the black hole in SI
M = 6e24 * u.kg

# Defining the initial coordinates of the test particle
# in SI
sph = SphericalDifferential(
    t=10000.0 * u.s,
    r=130.0 * u.m,
    theta=np.pi / 2 * u.rad,
    phi=-np.pi / 8 * u.rad,
    v_r=0.0 * u.m / u.s,
    v_th=0.0 * u.rad / u.s,
    v_p=1900.0 * u.rad / u.s,
)

# Schwarzschild Metric Object
ms = Schwarzschild(coords=sph, M=M)

Calculating Geodesic

[3]:
# Calculating Geodesic
geod = Timelike(metric=ms, coords=sph, end_lambda=0.002, step_size=5e-8)
geod
[3]:
Geodesic Object:
            Type = (Time-like)
            Metric = ((
            Name: (Schwarzschild Metric),
            Coordinates: (Spherical Polar Coordinates:
            t = (10000.0 s), r = (130.0 m), theta = (1.5707963267948966 rad), phi = (-0.39269908169872414 rad)
            v_t: 1.0000346157679914 m / s, v_r: 0.0 m / s, v_th: 0.0 rad / s, v_p: 1900.0 rad / s),
            Mass: (6e+24 kg),
            Spin parameter: (0.0),
            Charge: (0.0 C),
            Schwarzschild Radius: (0.008911392322942397)
)),
            Initial State = ([ 2.99792458e+12  1.30000000e+02  1.57079633e+00 -3.92699082e-01
  1.00003462e+00  0.00000000e+00  0.00000000e+00  1.90000000e+03]),
            Trajectory = ([[ 2.99792458e+12  1.20104339e+02 -4.97488462e+01 ...  9.45228078e+04
   2.28198245e+05  0.00000000e+00]
 [ 2.99792458e+12  1.20108103e+02 -4.97397110e+01 ...  9.36471118e+04
   2.28560931e+05 -5.80379473e-14]
 [ 2.99792458e+12  1.20143810e+02 -4.96475618e+01 ...  8.48885265e+04
   2.32184177e+05 -6.38424865e-13]
 ...
 [ 2.99792458e+12  1.29695466e+02 -6.52793459e-01 ...  1.20900076e+05
   2.46971585e+05 -1.86135457e-10]
 [ 2.99792458e+12  1.29741922e+02 -5.53995726e-01 ...  1.11380963e+05
   2.47015864e+05 -1.74024168e-10]
 [ 2.99792458e+12  1.29784572e+02 -4.55181739e-01 ...  1.01868292e+05
   2.47052855e+05 -1.61922169e-10]])

Plotting the geodesic

[4]:
obj = GeodesicPlotter()
obj.plot(geod)
obj.show()

Apsidal Precession is easily observed in the plot above.